Pressidian
花园入口
笔记
项目
关于
实验室
GitHub
花园入口
笔记
项目
关于
实验室
GitHub

KNOWLEDGE PATHS

笔记库
当前位置
笔记库/AI

skills、mcp、tool之间的区别 ⌚️

5 分钟阅读 · Note

目录树 578 篇

      • skills、mcp、tool之间的区别 ⌚️
    • 笔记目录
    • CLAUDE.md
    • Vue 组件与 Render 函数

关联笔记 6

↗数据库实验共同主题↗效果共同主题↗Agent Team&SubAgent共同主题↗ClaudeCode共同主题↗Harness engineering共同主题↗React共同主题
  • skills、mcp、tool之间的区别 ⌚️

skills、mcp、tool之间的区别 ⌚️

这是一个很专业的问题,通常出现在大语言模型(LLM)应用开发(比如 LangChain、Semantic Kernel 或 Claude 等平台的开发)中。

简单来说,这三者的关系是:Tool 是基础能力单元,MCP 是连接工具与 Agent 的标准化协议,而 Skill 则是面向特定任务的、更高层次的封装集合。

下面我们来详细区分:

1. Tool(工具)

这是最底层的概念,可以理解为模型能调用的一个具体的函数或 API。Tool 通常需要开发者明确定义它的输入、输出和功能。

  • 特点:
    • 原子性:一个 Tool 通常只做一件事,比如“获取天气”、“发送邮件”、“计算平方根”。
    • 显式注册:Agent(智能体)需要知道有哪些 Tool 可用,以及如何使用它们。
  • 例子:search_web(query),calculate(expression),send_email(to, subject, body)。
  • 局限:如果任务复杂(比如“帮我订一张机票”),直接使用 Tool 会非常繁琐,因为需要 Agent 一步步规划并调用多个 API。

2. MCP (Model Context Protocol,模型上下文协议)

这是一个较新的概念,由 Anthropic(Claude 的公司)提出。可以把它理解为 Tool 的通用接口标准或适配器。

  • 解决的问题:以前,每个 Tool 都需要单独为 LLM 写适配代码。MCP 提供了一套统一的协议,让 LLM 能够通过一个标准化的方式发现和使用各种外部工具。
  • 特点:
    • 标准化:就像 USB 接口一样,任何符合 MCP 标准的服务器(提供数据或功能)都能被任何支持 MCP 的客户端(如 Claude、IDE 插件)调用。
    • 解耦:Tool 的开发者只需实现一次 MCP 服务,而 Agent 开发者只需接入 MCP 客户端。
  • 与 Tool 的关系:MCP 是 Tool 的一种实现或封装方式。==一个传统的 Tool,如果被封装成 MCP Server,就变成了一个符合 MCP 标准的 Tool==。
  • 例子:有一个 MCP Server 连接到了你的本地文件系统。任何支持 MCP 的 AI 应用(如 Claude Desktop)都可以直接读取、写入你电脑上的文件,而无需为每个应用单独写文件读写代码。

3. Skill(技能)

这是最高层的概念。Skill 是为完成一个特定领域或任务而设计的可重用的能力包。

  • 特点:
    • 组合性:一个 Skill 通常由多个 Tool、提示词(Prompt)、工作流逻辑甚至其他 Skill 组合而成。
    • 面向场景:Skill 更接近“用户意图”,比如“Excel 数据分析 Skill”、“写作润色 Skill”、“代码审查 Skill”。
    • 可对话触发:用户可以用自然语言说“调用我的图片处理 Skill”,Agent 就会执行内部一系列复杂的操作。
  • 与 Tool 的关系:Tool 是 Skill 的“零件”。一个 Skill 内部会按顺序或逻辑调用多个 Tool。
  • 与 MCP 的关系:Skill 可以使用通过 MCP 协议连接的底层 Tool。MCP 是通信层,Skill 是业务逻辑层。
  • 例子:“旅行规划 Skill”。它内部可能包含:search_flights(搜索航班)、search_hotels(搜索酒店)、calculate_budget(计算预算)等多个 Tool,以及一系列引导用户提供信息的 Prompt 模板。

总结对比表

维度ToolMCPSkill
核心定义一个具体的原子功能/API连接工具与Agent的标准化协议面向特定任务的可重用能力包
抽象层级低中(连接层)高
内容单一函数(如 add(a,b))协议规范 + 服务器/客户端实现多个Tool + Prompt + 工作流
谁负责实现开发者写具体代码(Python/JS等)工具提供方实现Server,应用方实现Client开发者编排逻辑和资源
相互关系被 MCP 封装,被 Skill 调用连接 Tool 和 Agent/Skill 的桥梁内部使用 Tool,可通过 MCP 获取Tool
典型例子get_weather(city)一个 MCP 文件系统服务器“代码调试与修复 Skill”

一个直观的类比

想象一个自动驾驶汽车系统:

  • Tool:像汽车的基础部件——方向盘、油门、刹车、传感器(摄像头/雷达)。每个部件只负责一个基本动作。
  • MCP:像汽车的CAN总线(控制器局域网总线)协议。它定义了各个电子控制单元(发动机、刹车、传感器)之间如何通信,保证任何厂家的部件只要符合这个协议就能即插即用。
  • Skill:像泊车辅助或高速巡航功能。泊车功能会同时调用方向盘、油门、刹车、多个传感器(Tool),并遵循一个预设好的逻辑(方向盘左打30度 -> 踩刹车减速 -> …)来完成整个复杂任务。

实际开发中的选择建议

  • 写一个简单的功能(例如让AI计算数学题):直接用 Tool 就行。
  • 想连接外部系统(例如让AI访问本地数据库、GitHub、Slack):考虑用 MCP,它能让你写一次,多地复用。
  • 想创建一个复杂的AI应用(例如一个能够回复邮件、管理日程、自动购物的个人助理):用 Skill 来组织不同领域的逻辑,每个Skill内部再调用具体的Tool(或通过MCP获取工具)。